/*
function createArr(value: any, length: number): any[] {
    let res: any[] = []

    for (let i = 0; i < length; i++) {
        res.push(value)
    }

    return res
}
const list: any[] = createArr('老王', 100)
const list1: any[] = createArr({ name: '张三' }, 100)
*/


// 泛型，泛型 T变量
// T 可以理解为是一个变量的类型，具体是什么类型取决于调用的时候传递的类型
// 可以设置多个泛型参数
function createArr<T, S>(value: T, length: S): T[] {
    let res: T[] = []

    for (let i = 0; i < Number(length); i++) {
        res.push(value)
    }

    return res
}

const list: string[] = createArr<string, number>('老王', 100)

interface iUser { name: string }
const list1: iUser[] = createArr<iUser, number>({ name: '老吴' }, 100)
